home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 033a / bnu188b.zip / BNU.REV < prev    next >
Text File  |  1990-05-27  |  23KB  |  514 lines

  1. -----------------------------------
  2. Revision history since 1.70 release
  3. -----------------------------------
  4.  
  5. --- v1.71ß 04 Nov 1989
  6.  
  7.     - Fixed 'tabs' problem with 'fast' ANSI option
  8.     - Forced a single EOI on each call (experimental);
  9.       Note: this is a temporary 'kludge' for experimental
  10.       purposes, and means that IRQ's on the FIRST 8259A
  11.       (that is IRQ 0-7) are currently supported
  12.     - Forced additional loopback in ISR after servicing
  13.       stray THRE's (TX holding register empty) caused during
  14.       servicing of MSI's (modem status change) or received
  15.       characters.  This should ensure absolutely that no
  16.       stray interrupts get lost while in the ISR.
  17.  
  18.  
  19. --- v1.72ß 10 Nov 1989
  20.  
  21.     - Minor changes to port detection routine to 'fix' BIOS data
  22.       area correctly for invalid/unknown port addresses
  23.     - Additions to status display: number of physical ports detected
  24.       during diagnostics and default FIFO trigger level
  25.     - Arrgh!  Found some 'unfixed' code for the now variable 16550
  26.       FIFO sizes, RX/TX buffer purge was resetting the RX buffer to
  27.       the old 'hard coded' 8 byte level
  28.     - Fixed bug in error message display on the /Q option when FOSSIL
  29.       vector required recapture.
  30.  
  31.  
  32. --- v1.73α 13 Nov 1989
  33.  
  34.     - Changed to specific EOI in interrupt handler instead of non-
  35.       specific EOI,
  36.     - BNU now (again) supports the upper 8 interrupts on a 16 bit
  37.       bus, and sends a specific EOI to the master 8259A on IRQ 2
  38.       if an upper (IRQ 8-15) interrupt is used,
  39.     - Some redundant code has been eliminated from the ISR (saved a
  40.       few more clock cycles, anyway),
  41.     - BNU's internal CTS/RTS signal is now set on port init when CTS
  42.       is found low (previously it was left clear and not set until the
  43.       first MSI occured),
  44.     - BNU now uses INT 1cH vector for timer interrupt functions,
  45.     - The timer hook now re-enables interrupt processing and rearms
  46.       the timer interrupt before calling 'hooked' functions.  As a
  47.       result, hooked functions are now more 'friendly' and forgiving
  48.       on communications - for example the diags module should work
  49.       better in all cases and interfere less (if at all) with comms,
  50.     - Added view of the FIFO register to the diagnostics panel: this reads
  51.       according to the current FIFO trigger value:
  52.         C1    16550AN or better installed
  53.         81    16550 (old series) installed
  54.         01    FIFO disabled or 16550 not installed
  55.     - BNU now aborts if no hardware COM ports are located
  56.     - Forced port 'autosense' routine to use resident driver's version
  57.       of port setup table (since it installs ok),
  58.     - Status call now includes some code to check the state of the
  59.       'transmitter' to ensure that transmission is not temporarily
  60.       blocked for some reason hopefully increasing TX turnaround.
  61.  
  62.   * NOTE: BNUPORT from earlier versions is incompatible with releases
  63.       after 1.73α due to changes in EOI handling!  Upgrade to BNUPORT
  64.       version 1.80 (distributed via usual channels).
  65.  
  66.  
  67. --- v1.74α 18 Nov 1989
  68.  
  69.     - Placed further transmitter state checks in character TX, TX no
  70.       wait and TX flush to increase TX turnaround and decrease chance
  71.       of a 'stuck' transmitter.
  72.     - Enabled a timeout delay before reboot using the carrier watchdog.
  73.       The new command line parameter (compatible with old) is:
  74.         BNU /W<port>+|-[,<ticks>]
  75.       Example, to enable carrier watchdog on port 1 (COM2) to reboot
  76.       approx 4 seconds after carrier loss, the following would be
  77.       executed:
  78.         BNU /W1+,72
  79.       The timeout value is expressed in "ticks", where each timer tick
  80.       is equal to approx 18.2 per second.  A 1 minute delay requires
  81.       a delay factor of about 1100 ticks (there are approx 65520
  82.       ticks/hour).
  83.     - Stopped BNU "complaining" if a /P command line switch duplicated
  84.       the number of ports as previously set on install (saves having a
  85.       separate install line if only one command line is ever used in a
  86.       batch file).
  87.  
  88.  
  89. --- v1.75α 25 Nov 1989
  90.  
  91.     - Placed more transmitter state checks in character TX, TX no wait
  92.       and TX flush to increase TX turnaround and decrease chance of a
  93.       'stuck' transmitter.
  94.     - This version was distributed to specific sites only.
  95.  
  96.  
  97. --- v1.76α 29 Nov 1989
  98.  
  99.     - Internal test version only; testing TX state checking - eliminated
  100.       most of the new logic since the problem it was meant to solve ended
  101.       up being hardware related... :-(
  102.  
  103.  
  104. --- v1.77ß 03 Dec 1989        ** Back to beta versions again!
  105.  
  106.     - Improved transmitter logic handling in character IO functions
  107.     - Changed and improved method of FOSSIL controlled transmitter block
  108.       flag in FOSSIL function 10h - Opus (which uses this extensively)
  109.       should be much improved and transmitter interrupt handling more
  110.       efficient
  111.     - Found and squashed "the" bug introduced in 1.73α causing hanging
  112.       occasionally and memory allocation problems under PC-MOS/386 :-)
  113.     - Autodetect for the older 16550 (no AN) now installed; /Z2 will be
  114.       default for these machines unless a /Z switch is specified
  115.     - /Z with no digit now restores BNU to it's default autodetect FIFO
  116.       state
  117.     - Modified /Z1 to be now 16TX by 08RX to optimise for the older
  118.       style 16550 (this used to be BNU's default); this allows for
  119.       interrupt latency on the receive side (the usual requirement for
  120.       using the /Z switch) without sacrificing transmit buffer size!).
  121.     - Corrected a problem in port lock command line parsing, where the
  122.       specification of ,nps with the baud rate would not be effective
  123.       or would not set the port correctly
  124.  
  125.  
  126. --- v1.78ß 16 Dec 1989
  127.  
  128.     - Internal version only
  129.     - Solved problem with locking baud rates on anything but COM1; this
  130.       interferred with other communications software running on COM1,
  131.       such as mouse drivers, etc.
  132.     - Enabled switchable support for XOFF/ANY mode (any character
  133.       received unblocks an XOFF'ed transmitter instead of just XON),
  134.       the new command line switch is /X+ (or just /X) to enable XOFF/ANY
  135.       and /X- to use the default XOFF/XON protocol
  136.     - Added XOFF protocol setting to status display
  137.     - Closed stdout & stderr on install to prevent DOS allocating a
  138.       file handle on redirected stdout/stderr
  139.  
  140.  
  141. --- v1.79ß 23 Dec 1989
  142.  
  143.     - Fixed bug in setting baud rate on install, port was not being
  144.       immediately set if not COM1
  145.     - Forced watchdog to lower DTR prior reboot for both better
  146.       security and to prevent autoanswer modems from answering until
  147.       the application had fully restarted
  148.     - CHANGED /B SWITCH *** NOTICE *** /Bn old syntax is no longer
  149.       supported: BNU should now reboot correctly in all cases under
  150.       DESQview/386 and on most PC-compatible hardware.  The new syntax
  151.       is now /Bn, where n = 0 is cold boot, n = 1 is warm boot
  152.     - /I* will now deinit ALL active communications ports
  153.     - Limited release to specifc sites to ensure specific problems
  154.       have been solved...
  155.  
  156.  
  157. --- v1.79Γ 01 Jan 1990
  158.  
  159.     - Modified uninstall routine to allow for TM's install process and
  160.       resident detection.
  161.     - Small change to reboot code to cope with PC-MOS/386 v3.0
  162.     - Added hook for "get counter" from task manager (mainly for
  163.       debugging), and modified diags window to indicate UART type in
  164.       upper byte of FIFO size
  165.     - Substantial modifications to port baud rate & parameters setting,
  166.       fixing "bug" in the baud rate returned in "fossil data" call 1bh.
  167.       This call will now return the ACTUAL baud rate/parameters (it
  168.       previously returned incorrect data).
  169.     - Small modifications to port init to force modem status change and
  170.       kick interrupts...
  171.     - Bios version of baud rate set no longer turns interrupts off, but
  172.       preserves their state
  173.  
  174.  
  175. --- v1.79π 03 Jan 1990
  176.  
  177.     - Changed some internals in the way locked baud rates work
  178.     - Corrected problem in .sys version when parsing command line
  179.       for a locked baud rate
  180.     - Significant cleanup of .SYS version interface and facilities
  181.     - removed /B switch (redundant) from .SYS version
  182.     - added basic funtional BNUHLP.COM (see notes below)
  183.     - added functional task manager driver for DESQview and PC-MOS/386
  184.     - added CTS signal low timeout to prevent blocked transmitter
  185.       states when a modem is in error.  The default timeout is 10
  186.       seconds (ie if CTS from the modem stays low for more than 10
  187.       seconds, BNU will ignore this until the next modem status change).
  188.  
  189.  
  190. --- v1.79Σ 04 Jan 1990     * Emergency bug fix *
  191.  
  192.     - Fixed errors in new CTS signal recovery logic
  193.  
  194.  
  195. --- v1.80α 07 Jan 1990
  196.  
  197.     - Modified .SYS version / BNUHLP interraction
  198.     - BNUHLP now works in "non-verbose" mode when the /M- option has
  199.       been set when installed or via BNUHLP itself
  200.     - Fixed bug in BNUHLP not setting driver options correctly
  201.     - Modified /O switch to default to '+' (enable compatibility
  202.       mode) in .COM version and BNUHLP
  203.  
  204.  
  205. --- v1.80α 09 Jan 1990
  206.  
  207.     - Removed (hopefully) braindamage from the CTS timeout routine,
  208.       so now it should be more reliable and consistent
  209.     - Note that /Y<ticks> allows setting of this timeout (this has
  210.       been present, but 'undocumented' since adding this logic)
  211.     - Internal version only
  212.  
  213.  
  214. --- v1.80ß 11 Jan 1990
  215.  
  216.     - Support for flushing modem's transmit buffer on transmit purge
  217.       call by sending break signal for a specified period: the time
  218.       the break signal up is configurable (and this option is enabled)
  219.       using the /G<ticks> switch (typical setting is /G5 for approx
  220.       0.25 seconds).  This seems to provide faster response to
  221.       'hotkeyed' applications
  222.       WARNING: You would be advised to test this carefully; it's use
  223.            will normally require adjustment for your modem's settings
  224.            to enable the feature to "purge modem buffer on receiving
  225.            break from DTE (your computer)".
  226.       THIS OPTION SHOULD ONLY BE USED WHERE YOUR MODEM HAS AN OPTION TO
  227.       PREVENT SENDING 'BREAK' TO THE REMOTE: CURRENTLY - SO FAR AS I AM
  228.       AWARE - ONLY HST'S OFFER THIS OPTION.  MAKE SURE &Y0 IS ENABLED!
  229.     - CTS/RTS override strategy now sends a break if the /G option is
  230.       enabled to help the modem to recover from braindamage (use carefully)
  231.     - Added /G to BNU.COM BNUHLP.COM and BNU.SYS.
  232.     - Experimental version with limited release
  233.  
  234.  
  235. ---- v1.80Γ 15 Jan 1990
  236.  
  237.     - Corrected reboot code (typo) causing code not to work
  238.     - Corrections to break signal logic
  239.     - Further modifications to reboot code: it should work far more
  240.       reliably now under DV/386 and PC-MOS/386.
  241.     - Found suspicious error in maintenance of an internal status flag
  242.     - Fixed error in the "BIOS compatible" code for setting baud rates:
  243.       this indirectly affected locking baud rates as well
  244.     - Limited release
  245.  
  246.  
  247. ---- v1.81α 21 Jan 1990
  248.  
  249.     - Inserted 'hooks' for an external data capture buffer and added
  250.       'reserved' function to integration for a program to be released
  251.     - Modified 'break' handling to force a fixed interval break in
  252.       transmit buffer flush, which can be switched on and off for each
  253.       port individually.  the new syntax is:  /G<port>[+|-]
  254.       where port is 0=COM1, 1=COM2 etc. and '+' switches this break
  255.       handling on, and '-' switches it off
  256.     - Modified (a little) the way communications interrupts are handled;
  257.       SEOI rearms 8259A at commencement of IRQ handler to ensure no loss
  258.       of interrupts is possible
  259.     - Up to 8 ports are now supported concurrently (was 4)
  260.     - Prepared for chaining of ports to the same IRQ (not supported in
  261.       this version yet!)
  262.     - Modified debug window for more concise and relevant info
  263.     - Limited test releases
  264.  
  265.  
  266. ---- v1.82ß 23 Jan 1990
  267.  
  268.     - Finally a released beta ...
  269.     - CTS timeout now defaults to OFF, and must be enabled specifically
  270.       with /Yn (where n is in ticks).  Don't use it if you aren't having
  271.       problems since it will definitely create some for you.
  272.  
  273.  
  274. ---- v1.83α 14 Feb 1990
  275.  
  276.     - Experimental version(s) only
  277.     - /? is now the ONLY help switch; /H reserved for ...
  278.     - Added setting handshake mask ON and OFF to force or mask out
  279.       local and remote handshaking.  Format of this switch is:
  280.             /H{F|N}<port>{+|-},[C|X|R]
  281.       Examples are:
  282.             /HF0+,XR    Forces ON, xon/xoff handshaking for both
  283.                         remote and local so that despite what the
  284.                         application sets, XON/XOFF is always enabled.
  285.             /HF0-,X     Switchs off forcing on xon/xoff handshaking
  286.                         when XON/XOFF is received from the remote
  287.                         system; this resets any switch which forced
  288.                         'X' on (ie. reverses /FF0+,X).
  289.             /HN0+,C     Forces CTS/RTS handshaking off on COM1.
  290.             /HN1-,CX    Switches forcing both CTS/RTS and XON/XOFF
  291.                         handshaking off for COM2, reversing a previous
  292.                         /FN1+,CX.
  293.       This switch should ONLY be used in special circumstances, where
  294.       you wish to achieve a SPECIFIC PURPOSE.
  295.       WARNING: DO NOT USE THIS SWITCH UNLESS YOU UNDERSTAND IT AND
  296.                KNOW EXACTLY THE EFFECT YOU WISH TO ACHIEVE!!
  297.       Some examples of use are where your modem does not do true CTS/RTS
  298.       handshaking or does it incorrectly. For example, making CTS follow
  299.       carrier detect, stopping any commands being sent to the modem after
  300.       carrier loss (and the application does not provide an option to not
  301.       use CTS/RTS flow control); similarly where you use a three-wire
  302.       direct connect wire between machines without a CTS line; where
  303.       your modem cable does not support a CTS wire; where a BBS uses
  304.       block read/writes but does not enable XON/XOFF flow control to allow
  305.       ^S and ^Q to control screen start and stop.
  306.     - A few bug fixes/corrections:
  307.         . Setting baud rate when FOSSIL was not initialised
  308.         . Fixed serious problem in transmit/receive block functions where
  309.           interrupts would be disabled for too long due to a missing STI
  310.           instruction in a common subroutine
  311.         . Found error in ISR which prevented disabling of CTS/RTS flow
  312.           control (CTS/RTS flow control was respected regardless)
  313.     - Fixed reboot to work correctly under DESQview/386
  314.     
  315.     
  316. ---- v1.84ß 07 Mar 1990
  317.  
  318.     - Remote CTS timeout strategy eliminated (this was a kludge around
  319.       previously existing problems which have since been solved), so
  320.       /Y is now defunct
  321.     - Status /S switch now displays carrier watch status
  322.     - Automatically adapts boot procedure for PC-MOS/386 when detected,
  323.       reboot should also work more reliably under DESQview/386 (any
  324.       feedback appreciated)
  325.     - To maintain BNU's re-entrancy from within DOS, TM now checks that 
  326.       DOS is not busy prior doing find task number calls and time 
  327.       slicing (I don't think this is necessary, but not knowing for
  328.       sure I thought I'd make sure it wouldn't cause any problems)
  329.     - BNUHLP now supports status display; handshaking force on/off also
  330.       added to status in both BNUHLP and BNU.COM
  331.     - Bug fixed in .SYS version which could cause problems when BNUHLP
  332.       was run (some variables were inadvertantly being overwritten)
  333.     - Port locking/unlocking on-the-fly added to BNUHLP
  334.     - The '/' or '-' before command line arguments is now optional
  335.       (earth shattering, huh?)
  336.     - Added 'all' option to handshaking mask control switch /H, and
  337.       squashed a wee bug there in BNUHLP's version.  You can now 
  338.       specify something like:  /HF0+,A  This allows switching on/off 
  339.       ALL flow control flags (XON/XOFF local, CTS/RTS local and 
  340.       control remote using XON/XOFF), and is equivalent to /HF0+,CRX
  341.       but is a little easier to understand
  342.     - Additional test for receiver ready added to ISR, which will
  343.       hopefully further ensure reduction in the incidence of receive
  344.       character loss
  345.     - Up to 16 ports are now supported for concurrent use; this is 
  346.       BNU's maximum port configuration anyway.
  347.     - New BNUPORT added to this package - earlier versions will not
  348.       work and are incompatible; patch table files from earlier 
  349.       versions will be read by this version and automagically 
  350.       converted to the new more compact format
  351.  
  352.     - And especially for those who don't read release notes <grin>
  353.       the /M option is now disabled in all beta versions so that the
  354.       init message WILL be displayed with the new "THIS IS A BETA"
  355.       message.  If you ask about it, you're in for some public
  356.       embarassment about not RTFM'ing!  ;-)
  357.  
  358.  
  359. ---- v1.85α
  360.  
  361.     - Optimised some ISR code for better efficiency/speed, some
  362.       further rearrangement to implement shared IRQ's
  363.     - Fixed 9600 locked baud rate (was locking at 7200)
  364.     - Implemented shared IRQ's
  365.     - Semaphore used to ensure two ports not colliding in init
  366.       function
  367.  
  368.  
  369. ---- v1.85ß 08 Apr 1990
  370.  
  371.     - Removed some debug code (might have been causing problems)
  372.     - TM-PM revised; removed INMOS detection code, which caused
  373.       task slicing not to work (apparently MOS switches to its
  374.       internal stack on a software interrupt? Hmmm)
  375.     - Corrected two problems in port parameter locking using the
  376.       /L switch in BNUHLP
  377.     - Corrected the status display of locked baud rates and port
  378.       parameters.
  379.  
  380.  
  381. ---- v1.86ß 17 Apr 1990
  382.  
  383.     - Removed requirement for / or - preceeding options in TM, to
  384.       be consistent with BNU and BNUHLP
  385.     - Significant improvement to ISR; BNU should now work *much*
  386.       better in 'tough' conditions; ie. high baud rate and multi
  387.       line.
  388.     - Fixed a flow control bug which caused the transmitter to stop
  389.       during a file transfer whenever the receiver's buffer became
  390.       full (usually restarted by timeout).
  391.     - Modified the way the transmitter works, completely removing
  392.       the requirement for disabling interrupts when working with
  393.       16550 FIFO's.
  394.  
  395.  
  396. ---- v1.87α 19 Apr 1990
  397.  
  398.     - More revisions to BNU's interrupt service; some fairly extreme
  399.       optimisations added, some "debugging" options eliminated as a
  400.       result (the debug window no longer logs modem status changes)
  401.     - BNU now clears line status errors on each status call (solves
  402.       the problem with Opus/framing errors).
  403.     - Fixed a problem in "transmit flush" which caused apparent
  404.       'lockups' with some UART configurations
  405.  
  406.  
  407. ---- v1.88ß 27 May 1990
  408.  
  409.     - Removed shared-IRQ support :-(
  410.     - Fixed bug in "lock baud rate" switch (/L) in BNUHLP which
  411.       set incorrect bits
  412.     - Reinstated modem error reporting support in diags window
  413.     - 'Snoop' added to BNU package for aiding in diagnosis and allowing
  414.       a 'snapshot'
  415.  
  416.  
  417.              ~~~~~~~~~~~~~~~~~~~~~~~~~~
  418.  
  419. ADDITIONAL NOTES: BNUHLP
  420.  
  421.     This is a generic BNU utility, which may be used with either the .COM
  422.     (memory resident TSR) or the .SYS (device driver) version of BNU.
  423.     BNUHLP contains functions found only in the TSR version previously, and
  424.     some of the more often used functions of BNU.COM/.SYS are included in 
  425.     BNUHLP to make switching of drivers easier without having to modify your
  426.     batch files every time you change.
  427.  
  428.     Only a subset of the commands available with BNU.COM are provided.  
  429.     Those functions which are the same as BNU.COM are also identical in 
  430.     syntax, rules and usage.
  431.  
  432.     Following is the list of commands available in BNUHLP:
  433.  
  434.     /C     reCapture INT 14H vector  (required under DESQview etc.)
  435.             usage: /C
  436.     /Q     release INT 14H vector (removes BNU from the 14h chain)
  437.             usage: /Q
  438.     /B     reBoot system immediately (/B0 is cold boot, /B1 is warm)
  439.             usage: /B[0|1]     (boom!)
  440.     /F     (toggle) Fast screen write via ANSI driver
  441.             usage: /F[+|-]
  442.     /M     (toggle) init Message display
  443.             usage: /M[+|-]
  444.     /I     Initialise/deinitialise driver on port, or all ports
  445.             usage: /I<port>[+|-]
  446.          -or-  /I*       (deinits all)
  447.     /?     displays the Help screen
  448.             usage: /?
  449.     /W     enable/disable carrier Watchdog on a port
  450.             usage: /W<port>[+|-][,ticks]
  451.                (see above for optional [,ticks] parameter)
  452.     /O     Opus!Com/X00 cOmpatibility mode (fn 0x1c is max)
  453.             usage: /O[+|-]
  454.     /Z     sets 16550 FIFO buffering (as per .COm version)
  455.             usage: /Z          (use default buffering per hardware)
  456.          -or-  /Z<level>   (see 1.70's docs with exception above)
  457.     /X     XON/XOFF protocol select, toggles IXANY support
  458.             usage: /X[+|-]
  459.     /S     display driver Status
  460.             usage: /S
  461.     /H     force on/off given handshaking protocol
  462.             usage: /H[F|N]<port>,[X|C|R|A]     (see notes above)
  463.     /L     Lock/unlock port speed and/or parameters
  464.         usage: /L<port>:<baud>[,<parms>    (see docs v1.70)
  465.  
  466.  
  467. NOTES: Task Manager
  468.  
  469. This is a driver which interfaces to BNU to assist in running under
  470. multitasking software.  If used, it MUST BE RUN IMMEDIATELY AFTER
  471. LOADING BNU (or in the case of BNU.SYS, shortly after in AUTOEXEC.BAT).
  472. TM should _NEVER_ be loaded in a DESQview window if BNU is loaded prior
  473. to DV.  This is almost DEFINITELY cause a system lockup - sooner of
  474. later... Since BNU 'hooks into' TM, it is not separately unloadable.
  475. If BNU.COM is removed from memory, then memory allocated and used by
  476. TM will also be freed.
  477.  
  478. TM can use up to one command line parameter.  This indicates to the
  479. driver it's basic timeout period.  The timout period (expressed in
  480. clock ticks) is by default is around half a second (9 ticks), which
  481. is farily conservative. I've found best results at 4-5.
  482.  
  483. This release includes both TM for DESQview (TM-DV) and PC-MOS/386 (TM-PM).
  484.  
  485. HOW IT WORKS:  BNU has some "idle detect" hooks.  Whenever the
  486. communications driver is called, it examines the function being
  487. called.  Typically, a program calls BNU and "polls" when it's idle
  488. (which is a waste of cycles in most cases, but an application does
  489. have to keep an eye on things...), for port status, receive buffer
  490. status, or sometimes the transmit buffer is full, and no matter how
  491. hard the application tries, it cannot place any more characters there.
  492.  
  493. So, for these calls, BNU calls an "I think I'm being polled" hook in
  494. TM.  In turn, TM examines how long this has been occuring, and if it
  495. occurs for greater than the number of ticks specified (or 9 if no 
  496. command-line switch was used), it starts releasing time slices on 
  497. all subsequent "poll" calls.  BNU is also smart enough to detect 
  498. real activity occuring, and so terminates this arrangement 
  499. immediately things start to happen - the result is that by just 
  500. calling FOSSIL, the application automatically gives up time slices
  501. when it is truely idle.
  502.  
  503. For those using the diagnostics window, there is a field labelled "TMPoll",
  504. which indicates the current state of TM.  On a single tasking machine with
  505. TM either not loaded or inactive (multitasker is not loaded), this field
  506. will remain 0000.  When active, 0000 indicates that there's FOSSIL activity
  507. occuring, FFFF indicates a poll timeout (TM is time slicing!), and values
  508. in between denote that some calls are "polling", but not enough to trigger
  509. the idle detect switch on.
  510.  
  511. Each tick is approx 1/18th of a second.  The /T parameter takes arguments
  512. expressed in ticks.  The default is 9 (half a second), and as I've already
  513. said - 4 or 5 seems to work fine.
  514.